我們一直用 GPIO 點亮一顆 LED 燈來說明 GPIO 的輸出功能。到底 GPIO 能推動多大的電流呢?
查看 ESP32S3 datasheet,我們發現:
當 GPIO 設定爲 OUTPUT 時,在高電位時對外流出的能力爲 40 mA;在低電位時,對內流入的的能力是 28 mA,而且PAD_DRIVE 是設定爲 3。
我們再回頭來看看 Micropython 的 Pins and GPIO 中的說明:
大概就瞭解了,在默認的情況下,GPIO 的輸出電流在 20mA,若 drive 設定 Pin.DRIVE_3 的話,可以高達 40 mA。
我們的目標是 DIY 一台變頻電風扇,我們在控制蜂鳴器與風扇擺頭 的時候,需要透過 GPIO 來控制,但是我們上網查一下蜂鳴器與風扇擺頭的規格,不管是電壓,或者驅動電流,很難找的可以由 GPIO 直接驅動的零件。因此,我們通常用 GPIO 來推動電晶體開關電路,然後由電晶體來推動蜂鳴器或是擺頭馬達,若是電晶體的驅動還是不足,也可以用繼電器的方式推動。
對於電晶體是如何工作的,您可以觀看這個影片。
其中有些名詞兩岸的用法不一樣:
二極管 -> 二極體
三極管 -> 電晶體
硅半導體 -> 矽半導體
芯片 -> 晶片
有關電晶體開關電路的應用,您可以參考這個影片:三极管应用,控制一个LED灯的开关
把影片中的 高功率 LED 換成 蜂鳴器 或是 擺頭馬達,這個電路我們就可以應用在變頻風扇專案上了。
孫老師的電晶體影片,也有助於我們對於這類應用的理解。
我們在 google 查找 "蜂鳴器 規格“, 出現以下畫面:
我們點擊進去看規格書:
外觀尺寸都一樣,工作電壓確實大不相同,需要注意一下。而 MB12B01 規格的蜂鳴器,則可以被 ESP32S3 GPIO 順利直接推動。